home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 031-040 / amok35 / patmatch / patmatch.dok < prev    next >
Text File  |  1993-11-04  |  2KB  |  67 lines

  1. ==============================================================
  2.  Dokumentation zum Modul PatMatch  © Bernd Preusing 10-Feb-90
  3. ==============================================================
  4.  
  5. Copyright:
  6. ~~~~~~~~~~
  7. Autor dieses Moduls ist Bernd Preusing, Gerhardstr. 16, D-2200 Elmshorn.
  8. Dies Modul ist public domain. Es darf nicht ohne meine ausdrückliche
  9. Erlaubnis zu kommerziellen Zwecken verwendet werden.
  10. Kommerzieller Zweck ist auch der Vertrieb von PD-Disketten für mehr
  11. als 8,- DM!
  12.  
  13. Sinn des Moduls:
  14. ~~~~~~~~~~~~~~~~
  15. Hiermit kann ein sog. Pattern Matching durchgeführt werden, wie es z.B.
  16. von vielen AmigaDos-Programmen bekannt ist.
  17. Dies ist meines Wissens das erste M2Amiga-Modul, das 100% kompatibel
  18. zu AmigaDos ist.
  19.  
  20. Benutzung des Moduls:
  21. ~~~~~~~~~~~~~~~~~~~~~
  22. Die Prozedur CmplPat generiert aus einem Muster ein internes Format, das
  23. von der Prozedur Match benötigt wird.
  24. Sie braucht für jedes Muster nur einmal aufgerufen zu werden, danach
  25. kann beliebig oft mit verschiedenen Vergleichsstrings Match gerufen
  26. werden.
  27. Pattern ist ein beliebiges Wildcard-Muster, z.B. '#?.mod' oder
  28. '#?.(mod|def|obj|sym|ref)' usw. Der genaue Aufbau von Wildcards steht
  29. im AmigaDos-Handbuch.
  30. Aux ist eine Variable, in die das interne Format geschrieben
  31. wird. Sie sollte mindestens so groß wie der größte anzunehmende String
  32. sein.
  33. Falls FALSE zurückgegeben wird, ist Pattern kein gültiges Muster.
  34.  
  35. PROCEDURE CmplPat(Pat:ARRAY OF CHAR;
  36.           VAR Aux:ARRAY OF BYTE):BOOLEAN;
  37.  
  38. Match benötigt die beiden Parameter von CmplPat, sowie den String, der
  39. auf 'Gleichheit' überprüft werden soll.
  40. RETURN-Wert ist TRUE, wenn Str ein gültiger Name für Pat ist, sonst
  41. FALSE.
  42.  
  43. PROCEDURE Match(Pat:ARRAY OF CHAR;
  44.         VAR Aux: ARRAY OF UByte;
  45.         Str:ARRAY OF CHAR):BOOLEAN;
  46.  
  47.  
  48. Ein Beispiel:
  49. ~~~~~~~~~~~~~
  50. FROM PatMatch    IMPORT CmplPat, Match;
  51.  
  52. VAR Buffer: ARRAY [0..100] OF CHAR; (* irgend etwas! *)
  53.     Pat, Str: ARRAY [0..100] OF CHAR;
  54. ...
  55.   ReadString(Pat);
  56.   IF CmplPat(Pat,Buffer) THEN
  57.     LOOP (* bis Stromausfall *)
  58.       ReadString(Str);
  59.       IF Match(Pat,Buffer,Str) THEN Write('Passt!')
  60.       ELSE Write('Passt nicht!')
  61.       END;
  62.     END;
  63.   ELSE
  64.     Write('Kein gültiges Muster!');
  65.   END;
  66. ========================== cut ==================================
  67.